package cn.hncu.booksManagementSystem.user.business.ebi;

import java.util.Collection;

import cn.hncu.booksManagementSystem.user.vo.UserModel;
import cn.hncu.booksManagementSystem.user.vo.UserQueryModel;

public interface UserEbi {
	
	/**
	 * 用户登入
	 * @param qum 查询值对象
	 * @return 返回null表示没有该用户，否则表示有该用户
	 */
	public UserModel login(UserQueryModel qum);
	/**
	 * 获取所有用户信息
	 * @return 返回存储user信息的集合
	 */
	public Collection<UserModel> getAllUser();
	/**
	 * 创建一个用户
	 * @param user 被创建的对象
	 * @return true表示创建成功，false表示创建失败
	 */
	public boolean createUser(UserModel user);
	/**
	 * 删除一个用户
	 * @param user 被删除的对象
	 * @return true表示删除成功，false表示删除失败
	 */
	public boolean deleteUser(UserModel user);
	/**
	 * 更新用户信息
	 * @param newUser 用户的新信息
	 * @return true-更新成功;false-更新失败
	 */
	public boolean updateUserInfo(UserModel newUser);
	/**
	 * 根据查询值对象查询符合的用户信息
	 * @param qum 查询值对象
	 * @return 存放用户信息的集合
	 */
	public Collection<UserModel> getUsersByCondition(UserQueryModel uqm);
	/**
	 * 根据id查询符合的用户信息
	 * @param id 用户id
	 * @return 用户信息
	 */
	public UserModel getUserById(String id);
	/**
	 * 获得所有能够进货的用户包括超级管理员
	 * @return 所有进货人
	 */
	public Collection<UserModel> getAllInAndAdmin();
	/**
	 * 获得所有能够销售的用户包括超级管理员
	 * @return 所有销售人
	 */
	public Collection<UserModel> getAllOutAndAdmin();
	
}
